package com.example.todolist;

import java.util.ArrayList;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;

public class ListWorkAdapter extends ArrayAdapter<Work> {
	// Dataset mà hiển thị trên listview
	ArrayList<Work> m_arr_work;
	// cách hiển thị cho từng item trên listview (trong TH này nó là List.xml; được gắn trên customview)
	int m_i_resource;
	Context m_context;
	
	public ListWorkAdapter(Context context, int textViewResourceId, ArrayList<Work> objects) {
		super(context, textViewResourceId, objects);
		// 
		this.m_context = context;
		m_arr_work = objects;
		m_i_resource = textViewResourceId;
	}
	// Hàm này dùng để hiển thị item hiện tại lên listview
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		View v_v_workview = convertView;
		if(v_v_workview == null) {
			// chỗ này có thể lấy view bình thường, ko nhất thiết phải dùng customview
			v_v_workview = new CustomViewGroup(getContext());
		}
		// Lấy dữ liệu trên Work array;  (đây chính là đối tượng cần hiển thị lên listview)
		final Work v_work = m_arr_work.get(position); // lấy đối tượng dựa vào position
		
		if(v_work != null) {
			CheckBox v_chb = ((CustomViewGroup)v_v_workview).m_chb;
			TextView v_tv_work_content = ((CustomViewGroup)v_v_workview).m_tv_work_content;
			TextView v_tv_time_content = ((CustomViewGroup)v_v_workview).m_tv_time_content;
			TextView v_tv_dia_diem = ((CustomViewGroup)v_v_workview).m_tv_dia_diem;
			v_chb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
				
				@Override
				public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
					// TODO Auto-generated method stub
					v_work.setChecked(isChecked);
				}
			});
			// Hiển thị dữ liệu lên itemview của listview (customviewgroup)
			v_tv_work_content.setText(v_work.getContent());
			v_tv_time_content.setText(v_work.getTime());
			v_tv_dia_diem.setText(v_work.getDiaDiem());
			v_chb.setChecked(v_work.isChecked());
		}
		return v_v_workview;
	}
}
